#ifndef SYNTAX_H
#define SYNTAX_H

#include "analex.h"
#include "error.h"
#include "type.h"
#include "func.h"

int begin_counter;					// Compteur pour trouver le end de fin
int token;						// Le jeton, valeur retournée par yylex()
int terme_expression_counter;				// Compteur de terme et expression, utilisé pour le fichier appel
int in_function;					// Flag pour savoir si l'execution d'une instruction se fait dans une fonction ou pas
int in_procedure;					// Flag pour savoir si on execute une procedure
char function_name[124];				// Le nom de la fonction courante qui est exécutée
int contain_return;					// Flag si la fonction contient un return
int jumpInExp;						// Flag, on saute une lecture d'une unité lexicale localisée dans expression()
int jumpInInstruction;

/*
	Programme principal pour l'automate analysant le fichier pascal
	lst est le fichier listening ouvert en écriture
*/
int program();
void printSymbole(struct liste *list);

#endif
